package com.example.demo.commom;

import org.springframework.util.DigestUtils;

import java.util.UUID;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:龙宝
 * Date:2023-10-15
 * Time:18:27
 */
public class PasswordUtils {
    //密码加盐：
    public static String encrypt(String password) {
        //1、生成一个32位的盐值
        String salt = UUID.randomUUID().toString().replace("-","");
        //2、生成加盐后的密码，并将盐值和加盐后的密码并在一起
        return splicing(password,salt);
    }
    //验证密码是否正确
    public static boolean check(String inputPassword,String finPassword) {
        //1、获取salt
        String salt = finPassword.split("\\$")[0];
        //2、使用一样的盐值，加密
        String inputFinPassword = splicing(inputPassword,salt);
        if(inputFinPassword.equals(finPassword)) {
            return true;
        }
        return false;
    }

    //密码加盐的辅助方法
    private static String splicing(String password, String salt) {
        //1、使用md5生成加盐后的密码1
        String finpassword = DigestUtils.md5DigestAsHex((salt + password).getBytes());
        //2、返回最终密码【盐值 $ 密码1】
        return (salt + "$" +finpassword);
    }
}
